using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace LeisureCenter.Api
{
    public interface IDialogControl
    {
        Control Control { get; }

        IFocusHandler FocusHandler { get; }

        string Title { get; }
        bool ShowCancelButton { get;}
        bool ShowOkButton { get;}

        bool ShowAlphaBackground { get;}
        Color AlphaBackgroundColor { get;}

        bool OnOk();
        bool OnCancel();
        void SetFocusHandlers(IFocusHandler okButton, IFocusHandler cancelButton);
    }

    public interface IFocusHandler
    {
        IFocusHandler FocusLeft { get; }
        IFocusHandler FocusRight { get; }
        IFocusHandler FocusUp { get; }
        IFocusHandler FocusDown { get; }

        Control Control { get; }

        bool SetFocus(IFocusHandler source, Keys key);
    }

    public interface ILeisureCenterUIManager
    {
        Form CreateAlphaBackgroundForm(Color color, double opacity);
        Form CreateAlphaBackgroundForm(Color color);
        Form CreateAlphaBackgroundForm();

        void ShowCustomScreen(Control customScreen, bool showSubmenu);

        DialogResult MessageBox(string message, string iconName, MessageBoxButtons buttons, Color background);
        bool ListDialog(IEnumerable<string> items, bool showCancel, ref int index, Color alphaBackgroundColor);
    }
}
